﻿
(function ($) {
    $.fn.Rate = function (options) {
        options = options || {};
        var StarTip = options.StarTip || ['这不是人吃的', '口感不太好', '普普通通', '满好吃', '非常美味'];
        var ItemAmount = options.ItemAmount || 5;
        var UnRateClassName = options.UnRateClassName || 'star';
        var RateClassName = options.RateClassName || 'star_on';
        var originalStateClassName = options.originalStateClassName || 'OriginalState';
        var fun = options.fun || function () { }
        var content = $(this);
        var starList = '';
        for (var i = 0; i < ItemAmount; i++) {
            starList += ['<a href="#" class="', UnRateClassName,' star',i,'" title="', StarTip[i], '"></a>'].join('');
        }
        content.empty().append(starList).find('a').hover(
            function () { $(this).prevAll().add($(this)).addClass(RateClassName); },
            function () { $(this).prevAll().add($(this)).removeClass(RateClassName); })
                .bind('click', function () {
                    $(this).siblings().removeClass(originalStateClassName)
                    var score = parseInt(content.children().index($(this))) + 1;
                    $(this).prevAll().add($(this)).addClass(originalStateClassName);
                    fun(score);
                }
            );

    };

})(jQuery); 

/*
参数名称 描述 默认值 参数类型 
StarTip 鼠标移到星星上的文本提示 ['不值一看', '平平无奇', '信息靠谱', '对我很有帮助', '极品信息'] javascript数组
[tip]:数组元素个数必须要和星星个数一致 
ItemAmount 星星的个数 5 数字 
UnRateClassName 还没投票时星星的样式名称 'star' 字符串 
RateClassName 投票中，鼠标移过时星星的样式 'star_on' 字符串 
originalStateClassName  投票完成后，结果展示时星星的样式 'OriginalState' 字符串 
PostURL ajax交互时，url参数 '' 字符串 
DoAfterPost 投票完成后，在投票页面使用自定义方法 '' 字符串 
userID ajax交互时用户ID，防止重复投票 '' 数字 
messageID ajax交互时文章ID '' 数字 


.star{ height:16px; width:16px;float:left; background:url(../images/star.gif) no-repeat 0 0;} 
.star_on{ background: url(../images/star.gif) no-repeat 0 -32px !important;} 
.OriginalState{ width:0px;background: url(../images/star.gif) repeat-x 0 -16px !important;opacity:0;height:16px; display:block;} 



exp:

$('#left table tr:eq(1) td:eq(0) #StarRate').Rate({ 
    PostURL: 'http://www.cnblogs.com/ServiceProvider/MessageInfoService.asmx/VoteMessage', 
    userID: UserID, 
    messageID: messageID, 
    DoAfterPost: function (data) { 
        if (data > 0) { 
            $(voteResultContext).html(data); 
        } 
        else { 
            ProcessNoticeShow('您已经投过票了'); 
        } 
    } 
}); 

*/
